package top.infopub.model.bpa;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class MicroExamTaxExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public MicroExamTaxExample() {
        oredCriteria = new ArrayList<>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.isEmpty()) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        return new Criteria();
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<>();
        }

        public boolean isValid() {
            return !criteria.isEmpty();
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value) {
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2) {
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andSguidIsNull() {
            addCriterion("SGUID is null");
            return (Criteria) this;
        }

        public Criteria andSguidIsNotNull() {
            addCriterion("SGUID is not null");
            return (Criteria) this;
        }

        public Criteria andSguidEqualTo(String value) {
            addCriterion("SGUID =", value);
            return (Criteria) this;
        }

        public Criteria andSguidNotEqualTo(String value) {
            addCriterion("SGUID <>", value);
            return (Criteria) this;
        }

        public Criteria andSguidGreaterThan(String value) {
            addCriterion("SGUID >", value);
            return (Criteria) this;
        }

        public Criteria andSguidGreaterThanOrEqualTo(String value) {
            addCriterion("SGUID >=", value);
            return (Criteria) this;
        }

        public Criteria andSguidLessThan(String value) {
            addCriterion("SGUID <", value);
            return (Criteria) this;
        }

        public Criteria andSguidLessThanOrEqualTo(String value) {
            addCriterion("SGUID <=", value);
            return (Criteria) this;
        }

        public Criteria andSguidLike(String value) {
            addCriterion("SGUID like", value);
            return (Criteria) this;
        }

        public Criteria andSguidNotLike(String value) {
            addCriterion("SGUID not like", value);
            return (Criteria) this;
        }

        public Criteria andSguidIn(List<String> values) {
            addCriterion("SGUID in", values);
            return (Criteria) this;
        }

        public Criteria andSguidNotIn(List<String> values) {
            addCriterion("SGUID not in", values);
            return (Criteria) this;
        }

        public Criteria andSguidBetween(String value1, String value2) {
            addCriterion("SGUID between", value1, value2);
            return (Criteria) this;
        }

        public Criteria andSguidNotBetween(String value1, String value2) {
            addCriterion("SGUID not between", value1, value2);
            return (Criteria) this;
        }

        public Criteria andCodesIsNull() {
            addCriterion("CODES is null");
            return (Criteria) this;
        }

        public Criteria andCodesIsNotNull() {
            addCriterion("CODES is not null");
            return (Criteria) this;
        }

        public Criteria andCodesEqualTo(String value) {
            addCriterion("CODES =", value);
            return (Criteria) this;
        }

        public Criteria andCodesNotEqualTo(String value) {
            addCriterion("CODES <>", value);
            return (Criteria) this;
        }

        public Criteria andCodesGreaterThan(String value) {
            addCriterion("CODES >", value);
            return (Criteria) this;
        }

        public Criteria andCodesGreaterThanOrEqualTo(String value) {
            addCriterion("CODES >=", value);
            return (Criteria) this;
        }

        public Criteria andCodesLessThan(String value) {
            addCriterion("CODES <", value);
            return (Criteria) this;
        }

        public Criteria andCodesLessThanOrEqualTo(String value) {
            addCriterion("CODES <=", value);
            return (Criteria) this;
        }

        public Criteria andCodesLike(String value) {
            addCriterion("CODES like", value);
            return (Criteria) this;
        }

        public Criteria andCodesNotLike(String value) {
            addCriterion("CODES not like", value);
            return (Criteria) this;
        }

        public Criteria andCodesIn(List<String> values) {
            addCriterion("CODES in", values);
            return (Criteria) this;
        }

        public Criteria andCodesNotIn(List<String> values) {
            addCriterion("CODES not in", values);
            return (Criteria) this;
        }

        public Criteria andCodesBetween(String value1, String value2) {
            addCriterion("CODES between", value1, value2);
            return (Criteria) this;
        }

        public Criteria andCodesNotBetween(String value1, String value2) {
            addCriterion("CODES not between", value1, value2);
            return (Criteria) this;
        }

        public Criteria andTaxUserNameIsNull() {
            addCriterion("TAX_USER_NAME is null");
            return (Criteria) this;
        }

        public Criteria andTaxUserNameIsNotNull() {
            addCriterion("TAX_USER_NAME is not null");
            return (Criteria) this;
        }

        public Criteria andTaxUserNameEqualTo(String value) {
            addCriterion("TAX_USER_NAME =", value);
            return (Criteria) this;
        }

        public Criteria andTaxUserNameNotEqualTo(String value) {
            addCriterion("TAX_USER_NAME <>", value);
            return (Criteria) this;
        }

        public Criteria andTaxUserNameGreaterThan(String value) {
            addCriterion("TAX_USER_NAME >", value);
            return (Criteria) this;
        }

        public Criteria andTaxUserNameGreaterThanOrEqualTo(String value) {
            addCriterion("TAX_USER_NAME >=", value);
            return (Criteria) this;
        }

        public Criteria andTaxUserNameLessThan(String value) {
            addCriterion("TAX_USER_NAME <", value);
            return (Criteria) this;
        }

        public Criteria andTaxUserNameLessThanOrEqualTo(String value) {
            addCriterion("TAX_USER_NAME <=", value);
            return (Criteria) this;
        }

        public Criteria andTaxUserNameLike(String value) {
            addCriterion("TAX_USER_NAME like", value);
            return (Criteria) this;
        }

        public Criteria andTaxUserNameNotLike(String value) {
            addCriterion("TAX_USER_NAME not like", value);
            return (Criteria) this;
        }

        public Criteria andTaxUserNameIn(List<String> values) {
            addCriterion("TAX_USER_NAME in", values);
            return (Criteria) this;
        }

        public Criteria andTaxUserNameNotIn(List<String> values) {
            addCriterion("TAX_USER_NAME not in", values);
            return (Criteria) this;
        }

        public Criteria andTaxUserNameBetween(String value1, String value2) {
            addCriterion("TAX_USER_NAME between", value1, value2);
            return (Criteria) this;
        }

        public Criteria andTaxUserNameNotBetween(String value1, String value2) {
            addCriterion("TAX_USER_NAME not between", value1, value2);
            return (Criteria) this;
        }

        public Criteria andAmountPayableIsNull() {
            addCriterion("AMOUNT_PAYABLE is null");
            return (Criteria) this;
        }

        public Criteria andAmountPayableIsNotNull() {
            addCriterion("AMOUNT_PAYABLE is not null");
            return (Criteria) this;
        }

        public Criteria andAmountPayableEqualTo(Integer value) {
            addCriterion("AMOUNT_PAYABLE =", value);
            return (Criteria) this;
        }

        public Criteria andAmountPayableNotEqualTo(Integer value) {
            addCriterion("AMOUNT_PAYABLE <>", value);
            return (Criteria) this;
        }

        public Criteria andAmountPayableGreaterThan(Integer value) {
            addCriterion("AMOUNT_PAYABLE >", value);
            return (Criteria) this;
        }

        public Criteria andAmountPayableGreaterThanOrEqualTo(Integer value) {
            addCriterion("AMOUNT_PAYABLE >=", value);
            return (Criteria) this;
        }

        public Criteria andAmountPayableLessThan(Integer value) {
            addCriterion("AMOUNT_PAYABLE <", value);
            return (Criteria) this;
        }

        public Criteria andAmountPayableLessThanOrEqualTo(Integer value) {
            addCriterion("AMOUNT_PAYABLE <=", value);
            return (Criteria) this;
        }

        public Criteria andAmountPayableIn(List<Integer> values) {
            addCriterion("AMOUNT_PAYABLE in", values);
            return (Criteria) this;
        }

        public Criteria andAmountPayableNotIn(List<Integer> values) {
            addCriterion("AMOUNT_PAYABLE not in", values);
            return (Criteria) this;
        }

        public Criteria andAmountPayableBetween(Integer value1, Integer value2) {
            addCriterion("AMOUNT_PAYABLE between", value1, value2);
            return (Criteria) this;
        }

        public Criteria andAmountPayableNotBetween(Integer value1, Integer value2) {
            addCriterion("AMOUNT_PAYABLE not between", value1, value2);
            return (Criteria) this;
        }

        public Criteria andActualAmountIsNull() {
            addCriterion("ACTUAL_AMOUNT is null");
            return (Criteria) this;
        }

        public Criteria andActualAmountIsNotNull() {
            addCriterion("ACTUAL_AMOUNT is not null");
            return (Criteria) this;
        }

        public Criteria andActualAmountEqualTo(Integer value) {
            addCriterion("ACTUAL_AMOUNT =", value);
            return (Criteria) this;
        }

        public Criteria andActualAmountNotEqualTo(Integer value) {
            addCriterion("ACTUAL_AMOUNT <>", value);
            return (Criteria) this;
        }

        public Criteria andActualAmountGreaterThan(Integer value) {
            addCriterion("ACTUAL_AMOUNT >", value);
            return (Criteria) this;
        }

        public Criteria andActualAmountGreaterThanOrEqualTo(Integer value) {
            addCriterion("ACTUAL_AMOUNT >=", value);
            return (Criteria) this;
        }

        public Criteria andActualAmountLessThan(Integer value) {
            addCriterion("ACTUAL_AMOUNT <", value);
            return (Criteria) this;
        }

        public Criteria andActualAmountLessThanOrEqualTo(Integer value) {
            addCriterion("ACTUAL_AMOUNT <=", value);
            return (Criteria) this;
        }

        public Criteria andActualAmountIn(List<Integer> values) {
            addCriterion("ACTUAL_AMOUNT in", values);
            return (Criteria) this;
        }

        public Criteria andActualAmountNotIn(List<Integer> values) {
            addCriterion("ACTUAL_AMOUNT not in", values);
            return (Criteria) this;
        }

        public Criteria andActualAmountBetween(Integer value1, Integer value2) {
            addCriterion("ACTUAL_AMOUNT between", value1, value2);
            return (Criteria) this;
        }

        public Criteria andActualAmountNotBetween(Integer value1, Integer value2) {
            addCriterion("ACTUAL_AMOUNT not between", value1, value2);
            return (Criteria) this;
        }

        public Criteria andParentIdIsNull() {
            addCriterion("PARENT_ID is null");
            return (Criteria) this;
        }

        public Criteria andParentIdIsNotNull() {
            addCriterion("PARENT_ID is not null");
            return (Criteria) this;
        }

        public Criteria andParentIdEqualTo(String value) {
            addCriterion("PARENT_ID =", value);
            return (Criteria) this;
        }

        public Criteria andParentIdNotEqualTo(String value) {
            addCriterion("PARENT_ID <>", value);
            return (Criteria) this;
        }

        public Criteria andParentIdGreaterThan(String value) {
            addCriterion("PARENT_ID >", value);
            return (Criteria) this;
        }

        public Criteria andParentIdGreaterThanOrEqualTo(String value) {
            addCriterion("PARENT_ID >=", value);
            return (Criteria) this;
        }

        public Criteria andParentIdLessThan(String value) {
            addCriterion("PARENT_ID <", value);
            return (Criteria) this;
        }

        public Criteria andParentIdLessThanOrEqualTo(String value) {
            addCriterion("PARENT_ID <=", value);
            return (Criteria) this;
        }

        public Criteria andParentIdLike(String value) {
            addCriterion("PARENT_ID like", value);
            return (Criteria) this;
        }

        public Criteria andParentIdNotLike(String value) {
            addCriterion("PARENT_ID not like", value);
            return (Criteria) this;
        }

        public Criteria andParentIdIn(List<String> values) {
            addCriterion("PARENT_ID in", values);
            return (Criteria) this;
        }

        public Criteria andParentIdNotIn(List<String> values) {
            addCriterion("PARENT_ID not in", values);
            return (Criteria) this;
        }

        public Criteria andParentIdBetween(String value1, String value2) {
            addCriterion("PARENT_ID between", value1, value2);
            return (Criteria) this;
        }

        public Criteria andParentIdNotBetween(String value1, String value2) {
            addCriterion("PARENT_ID not between", value1, value2);
            return (Criteria) this;
        }

        public Criteria andAddByIsNull() {
            addCriterion("ADD_BY is null");
            return (Criteria) this;
        }

        public Criteria andAddByIsNotNull() {
            addCriterion("ADD_BY is not null");
            return (Criteria) this;
        }

        public Criteria andAddByEqualTo(String value) {
            addCriterion("ADD_BY =", value);
            return (Criteria) this;
        }

        public Criteria andAddByNotEqualTo(String value) {
            addCriterion("ADD_BY <>", value);
            return (Criteria) this;
        }

        public Criteria andAddByGreaterThan(String value) {
            addCriterion("ADD_BY >", value);
            return (Criteria) this;
        }

        public Criteria andAddByGreaterThanOrEqualTo(String value) {
            addCriterion("ADD_BY >=", value);
            return (Criteria) this;
        }

        public Criteria andAddByLessThan(String value) {
            addCriterion("ADD_BY <", value);
            return (Criteria) this;
        }

        public Criteria andAddByLessThanOrEqualTo(String value) {
            addCriterion("ADD_BY <=", value);
            return (Criteria) this;
        }

        public Criteria andAddByLike(String value) {
            addCriterion("ADD_BY like", value);
            return (Criteria) this;
        }

        public Criteria andAddByNotLike(String value) {
            addCriterion("ADD_BY not like", value);
            return (Criteria) this;
        }

        public Criteria andAddByIn(List<String> values) {
            addCriterion("ADD_BY in", values);
            return (Criteria) this;
        }

        public Criteria andAddByNotIn(List<String> values) {
            addCriterion("ADD_BY not in", values);
            return (Criteria) this;
        }

        public Criteria andAddByBetween(String value1, String value2) {
            addCriterion("ADD_BY between", value1, value2);
            return (Criteria) this;
        }

        public Criteria andAddByNotBetween(String value1, String value2) {
            addCriterion("ADD_BY not between", value1, value2);
            return (Criteria) this;
        }

        public Criteria andAddTimeIsNull() {
            addCriterion("ADD_TIME is null");
            return (Criteria) this;
        }

        public Criteria andAddTimeIsNotNull() {
            addCriterion("ADD_TIME is not null");
            return (Criteria) this;
        }

        public Criteria andAddTimeEqualTo(Date value) {
            addCriterion("ADD_TIME =", value);
            return (Criteria) this;
        }

        public Criteria andAddTimeNotEqualTo(Date value) {
            addCriterion("ADD_TIME <>", value);
            return (Criteria) this;
        }

        public Criteria andAddTimeGreaterThan(Date value) {
            addCriterion("ADD_TIME >", value);
            return (Criteria) this;
        }

        public Criteria andAddTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("ADD_TIME >=", value);
            return (Criteria) this;
        }

        public Criteria andAddTimeLessThan(Date value) {
            addCriterion("ADD_TIME <", value);
            return (Criteria) this;
        }

        public Criteria andAddTimeLessThanOrEqualTo(Date value) {
            addCriterion("ADD_TIME <=", value);
            return (Criteria) this;
        }

        public Criteria andAddTimeIn(List<Date> values) {
            addCriterion("ADD_TIME in", values);
            return (Criteria) this;
        }

        public Criteria andAddTimeNotIn(List<Date> values) {
            addCriterion("ADD_TIME not in", values);
            return (Criteria) this;
        }

        public Criteria andAddTimeBetween(Date value1, Date value2) {
            addCriterion("ADD_TIME between", value1, value2);
            return (Criteria) this;
        }

        public Criteria andAddTimeNotBetween(Date value1, Date value2) {
            addCriterion("ADD_TIME not between", value1, value2);
            return (Criteria) this;
        }

        public Criteria andUptByIsNull() {
            addCriterion("UPT_BY is null");
            return (Criteria) this;
        }

        public Criteria andUptByIsNotNull() {
            addCriterion("UPT_BY is not null");
            return (Criteria) this;
        }

        public Criteria andUptByEqualTo(String value) {
            addCriterion("UPT_BY =", value);
            return (Criteria) this;
        }

        public Criteria andUptByNotEqualTo(String value) {
            addCriterion("UPT_BY <>", value);
            return (Criteria) this;
        }

        public Criteria andUptByGreaterThan(String value) {
            addCriterion("UPT_BY >", value);
            return (Criteria) this;
        }

        public Criteria andUptByGreaterThanOrEqualTo(String value) {
            addCriterion("UPT_BY >=", value);
            return (Criteria) this;
        }

        public Criteria andUptByLessThan(String value) {
            addCriterion("UPT_BY <", value);
            return (Criteria) this;
        }

        public Criteria andUptByLessThanOrEqualTo(String value) {
            addCriterion("UPT_BY <=", value);
            return (Criteria) this;
        }

        public Criteria andUptByLike(String value) {
            addCriterion("UPT_BY like", value);
            return (Criteria) this;
        }

        public Criteria andUptByNotLike(String value) {
            addCriterion("UPT_BY not like", value);
            return (Criteria) this;
        }

        public Criteria andUptByIn(List<String> values) {
            addCriterion("UPT_BY in", values);
            return (Criteria) this;
        }

        public Criteria andUptByNotIn(List<String> values) {
            addCriterion("UPT_BY not in", values);
            return (Criteria) this;
        }

        public Criteria andUptByBetween(String value1, String value2) {
            addCriterion("UPT_BY between", value1, value2);
            return (Criteria) this;
        }

        public Criteria andUptByNotBetween(String value1, String value2) {
            addCriterion("UPT_BY not between", value1, value2);
            return (Criteria) this;
        }

        public Criteria andUptTimeIsNull() {
            addCriterion("UPT_TIME is null");
            return (Criteria) this;
        }

        public Criteria andUptTimeIsNotNull() {
            addCriterion("UPT_TIME is not null");
            return (Criteria) this;
        }

        public Criteria andUptTimeEqualTo(Date value) {
            addCriterion("UPT_TIME =", value);
            return (Criteria) this;
        }

        public Criteria andUptTimeNotEqualTo(Date value) {
            addCriterion("UPT_TIME <>", value);
            return (Criteria) this;
        }

        public Criteria andUptTimeGreaterThan(Date value) {
            addCriterion("UPT_TIME >", value);
            return (Criteria) this;
        }

        public Criteria andUptTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("UPT_TIME >=", value);
            return (Criteria) this;
        }

        public Criteria andUptTimeLessThan(Date value) {
            addCriterion("UPT_TIME <", value);
            return (Criteria) this;
        }

        public Criteria andUptTimeLessThanOrEqualTo(Date value) {
            addCriterion("UPT_TIME <=", value);
            return (Criteria) this;
        }

        public Criteria andUptTimeIn(List<Date> values) {
            addCriterion("UPT_TIME in", values);
            return (Criteria) this;
        }

        public Criteria andUptTimeNotIn(List<Date> values) {
            addCriterion("UPT_TIME not in", values);
            return (Criteria) this;
        }

        public Criteria andUptTimeBetween(Date value1, Date value2) {
            addCriterion("UPT_TIME between", value1, value2);
            return (Criteria) this;
        }

        public Criteria andUptTimeNotBetween(Date value1, Date value2) {
            addCriterion("UPT_TIME not between", value1, value2);
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}